我正在尝试跟踪所有当前正在运行的进程的可见窗口。我的程序与这些窗口交互,它检测到它们的速度越快越好。我的目标是将可见窗口移动到屏幕上的某个位置,如果可能的话,甚至在它们绘制到默认位置之前。如果不是,我想在创建后尽快移动它们。现在,我在循环中使用EnumWindows(p/从user32.dll调用)枚举可见窗口,迭代之间的延迟尽可能小。我正在寻找一种方法来Hook“某物”,这将允许我等待“窗口打开”事件触发而不是不断轮询。有什么方法可以实现吗? 最佳答案 您需要SetWindowsHookEx()API函数,设置WH_SHELLHo
当使用CreateWindow(...)创建窗口时,需要窗口宽度和高度,我必须输入值656和516,而不是640和480,以便计算用于窗口边框。我想知道是否有一种方法可以仅基于不包括边框的窗口部分创建一个窗口,特别是考虑到如果不同版本的窗口具有不同大小的边框,则程序可能会在以下情况下显示不同我在所说的不同版本上运行它(即:如果用户的Windows版本具有不同大小的边框,则使用640-object.width将使对象不完全位于屏幕边缘)。那么有没有一种方法可以仅基于屏幕上与程序相关的部分创建一个窗口,或者至少是一个类似于GetVericalBorder()/的函数GetHorizon
我的WinForms应用程序使用Process.Start()在其native应用程序中打开文件。我想将屏幕分成两半,在一半上显示我的WinForms应用程序,在另一半上显示新进程。我知道我可以使用Process.MainWindowHandle获取窗口句柄,但我如何设置它的大小和位置?我想我必须使用某种WindowsAPI,但使用哪一种以及如何使用?由于这并不是真正“在我的驾驶室”,我不确定我是否(以及如何)需要在64位Windows上使用不同的API。 最佳答案 有问题的WindowsAPI方法是SetWindowPos。您可以
我正在尝试使用热键实用程序(或NirCMD等)的SendMessage功能来弹出隐藏窗口。例如,我可以通过发送0x0010(WM_CLOSE)来关闭窗口,但是当我尝试发送wParam为1和lParam为0的0x0018(WM_SHOWWINDOW)时,没有任何反应。我环顾四周,有人提示WM_SHOWWINDOW不起作用的几个地方,他们很高兴地接受了改用ShowWindow()的建议。但是我没有可用的ShowWindow();我只能发送Windows消息。但是ShowWindow()并不神奇,它肯定可以通过SendMessage-ingWM_SHOWWINDOW或幕后的东西来工作。如何通
这可能是一个简单的问题,但我不知道从哪里开始寻找答案。如何使用nativewinapi在一个应用程序中创建两个单独的窗口界面?我是否使用相同的HINSTANCE放置两个CreateWindow()函数?如果我想要一个登录屏幕窗口和内容页面,这样登录屏幕先出现,并且在我按下按钮后,登录屏幕被破坏,内容页面出现怎么办。我该怎么做这样的把戏?我正在考虑在按钮单击消息中使用DestroyWindow然后使用CreateWindow。但是,这意味着WinMain中的主while循环(用于翻译/发送消息)将退出其循环并导致整个程序退出。另一种方法是在WinMain中预先创建它,但是如果单击按钮并进
我创建了一个半透明的表单(60%的不透明度和黑色背景),我的应用程序在启动时最大化了整个屏幕。基本上,它会在整个桌面上转换出一种灰色。当用户将鼠标悬停在桌面上的窗口上时,我想获取该窗口的句柄(hWnd)。对我有用的简单方法是:暂时隐藏我的表单(或者,暂时将我的表单的不透明度设置为0.0)调用[GetCursorPos][1]调用[WindowFromPoint][2]再次显示我的表单这种方法的问题是我的表单/屏幕闪烁,这是我不喜欢的。我尝试通过两种方式解决这个问题:我认为应该有一种方法可以通过调用ChildWindowFromPointEx直接在我的窗体下方获取窗口的hWnd。(传入桌
每个人都知道可以使用快捷键Windows+R或直接在Windows菜单中然后运行打开的运行窗口。我想知道如何以编程方式打开此运行窗口。此窗口似乎是explorer.exe的一部分。有人对此有想法吗? 最佳答案 您可以使用IShellDispatch::FileRun来实现这一点。参见UsingtheWindowsRunFiledialog-Thedocumentedandundocumentedway有关详细信息和示例代码。 关于windows-如何以编程方式打开运行窗口,我们在Stac
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭8年前。Improvethisquestion我使用的是Windows7,我能够启动多个VisualStudio并同时工作。现在我有Windows8.1操作系统,每当我尝试启动第
我在html表中动态添加了linkbutton并添加到Bootstrap模态的主体中。(linkbutton已编码linkbutton.click+=neweventhandler(Eventclick1);)但是,当我点击选择时,它不会转到我的函数Eventclick1。它只是刷新整个页面。(它已经在更新面板内)。无论如何,我可以使select按钮回传吗?(我不想添加客户端点击功能,如onclientclick=$('#otherbutton').click();)更新lnk_button.ID=this.ID+"AuditSelectedRow_"+Convert.ToString
我有一个C#应用程序,当用户单击一个按钮时,它将打开具有指定服务器和数据库连接的SQLServerManagementStudio查询编辑器。我想做的是能够拥有相同的功能,但使用已经运行的SSMS实例(不启动新进程)。到目前为止我的代码:if(IsProcessOpen("Ssms")==false){Processssms=newProcess();ssms.StartInfo.FileName="C:\\ProgramFiles(x86)\\MicrosoftSQLServer\\110\\Tools\\Binn\\ManagementStudio\\Ssms.exe";ssms.